package com.x.base.core.project.config;

import java.io.File;
import java.util.TreeSet;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;

import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.config.Token.Oauth;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.tools.DefaultCharset;

public class AppStyle extends ConfigObject {

	public static AppStyle defaultInstance() {
		return new AppStyle();
	}

	public static final String INDEXTYPE_DEFAULT = "default";
	public static final String INDEXTYPE_PORTAL = "portal";

	public AppStyle() {

		this.indexType = INDEXTYPE_DEFAULT;
		this.indexPortal = "";

	}

	public String getIndexType() {
		return StringUtils.equals(INDEXTYPE_PORTAL, this.indexType) ? INDEXTYPE_PORTAL : INDEXTYPE_DEFAULT;
	}

	public String getIndexPortal() {
		return indexPortal;
	}

	public TreeSet<Image> getImages() throws Exception {
		if (null == images || images.isEmpty()) {
			this.images = new TreeSet<Image>();
		}
		if (!this.images.contains(Image.launch_logo())) {
			this.images.add(Image.launch_logo());
		}
		if (!this.images.contains(Image.login_avatar())) {
			this.images.add(Image.login_avatar());
		}
		if (!this.images.contains(Image.index_bottom_menu_logo_blur())) {
			this.images.add(Image.index_bottom_menu_logo_blur());
		}
		if (!this.images.contains(Image.index_bottom_menu_logo_focus())) {
			this.images.add(Image.index_bottom_menu_logo_focus());
		}
		// if (!this.images.contains(Image.people_avatar_default())) {
		// this.images.add(Image.people_avatar_default());
		// }
		if (!this.images.contains(Image.process_default())) {
			this.images.add(Image.process_default());
		}
		if (!this.images.contains(Image.setup_about_logo())) {
			this.images.add(Image.setup_about_logo());
		}
		return this.images;
	}

	public TreeSet<NativeApp> getNativeAppList() {
		if (null == this.nativeAppList || this.nativeAppList.isEmpty()) {
			this.nativeAppList = new TreeSet<NativeApp>();
		}
		if (!this.nativeAppList.contains(NativeApp.nativeTask())) {
			this.nativeAppList.add(NativeApp.nativeTask());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeTaskCompleted())) {
			this.nativeAppList.add(NativeApp.nativeTaskCompleted());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeRead())) {
			this.nativeAppList.add(NativeApp.nativeRead());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeReadCompleted())) {
			this.nativeAppList.add(NativeApp.nativeReadCompleted());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeMeeting())) {
			this.nativeAppList.add(NativeApp.nativeMeeting());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeFile())) {
			this.nativeAppList.add(NativeApp.nativeFile());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeCms())) {
			this.nativeAppList.add(NativeApp.nativeCms());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeBbs())) {
			this.nativeAppList.add(NativeApp.nativeBbs());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeAttendance())) {
			this.nativeAppList.add(NativeApp.nativeAttendance());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeO2ai())) {
			this.nativeAppList.add(NativeApp.nativeO2ai());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeCalendar())) {
			this.nativeAppList.add(NativeApp.nativeCalendar());
		}
		if (!this.nativeAppList.contains(NativeApp.nativeMindMap())) {
			this.nativeAppList.add(NativeApp.nativeMindMap());
		}
		return this.nativeAppList;
	}

	@FieldDescribe("首页展现类型,default是移动端原来的首页,portal是门户.")
	private String indexType;

	@FieldDescribe("门户首页.")
	private String indexPortal;

	@FieldDescribe("导航设置")
	private TreeSet<NativeApp> nativeAppList = new TreeSet<>();

	@FieldDescribe("图片设置.")
	private TreeSet<Image> images = new TreeSet<>();

	public void setIndexType(String indexType) {
		this.indexType = indexType;
	}

	public void setIndexPortal(String indexPortal) {
		this.indexPortal = indexPortal;
	}

	public static class Image extends GsonPropertyObject implements Comparable<Image> {

		public static Image launch_logo() {
			Image o = new Image();
			o.setName(name_launch_logo);
			o.setValue(default_launch_logo);
			return o;
		}

		public static Image login_avatar() {
			Image o = new Image();
			o.setName(name_login_avatar);
			o.setValue(default_login_avatar);
			return o;
		}

		public static Image index_bottom_menu_logo_blur() {
			Image o = new Image();
			o.setName(name_index_bottom_menu_logo_blur);
			o.setValue(default_index_bottom_menu_logo_blur);
			return o;
		}

		public static Image index_bottom_menu_logo_focus() {
			Image o = new Image();
			o.setName(name_index_bottom_menu_logo_focus);
			o.setValue(default_index_bottom_menu_logo_focus);
			return o;
		}

		// public static Image people_avatar_default() {
		// Image o = new Image();
		// o.setName(name_people_avatar_default);
		// o.setValue(default_people_avatar_default);
		// return o;
		// }

		public static Image process_default() {
			Image o = new Image();
			o.setName(name_process_default);
			o.setValue(default_process_default);
			return o;
		}

		public static Image setup_about_logo() {
			Image o = new Image();
			o.setName(name_setup_about_logo);
			o.setValue(default_setup_about_logo);
			return o;
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + ((name == null) ? 0 : name.hashCode());
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			NativeApp other = (NativeApp) obj;
			if (name == null) {
				if (other.name != null)
					return false;
			} else if (!name.equals(other.name))
				return false;
			return true;
		}

		public static final String name_launch_logo = "launch_logo";
		public static final String name_login_avatar = "login_avatar";
		public static final String name_index_bottom_menu_logo_blur = "index_bottom_menu_logo_blur";
		public static final String name_index_bottom_menu_logo_focus = "index_bottom_menu_logo_focus";
		// public static final String name_people_avatar_default =
		// "people_avatar_default";
		public static final String name_process_default = "process_default";
		public static final String name_setup_about_logo = "setup_about_logo";

		static final String default_launch_logo = "iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAYAAAA/f6WqAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4KmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNy0xMC0wOVQxNjo0MDowNCswODowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE3LTEwLTA5VDE2OjQ1OjM5KzA4OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNy0xMC0wOVQxNjo0NTozOSswODowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDplNDU0OWQ5NC0xZTgwLTQ2MWItYmI1NC1jMGZmOGRlMzRmMGQ8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6ZTQ1NDlkOTQtMWU4MC00NjFiLWJiNTQtYzBmZjhkZTM0ZjBkPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6ZTQ1NDlkOTQtMWU4MC00NjFiLWJiNTQtYzBmZjhkZTM0ZjBkPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmU0NTQ5ZDk0LTFlODAtNDYxYi1iYjU0LWMwZmY4ZGUzNGYwZDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNy0xMC0wOVQxNjo0MDowNCswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE5NTwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xOTU8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PuWEDWcAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAACxhJREFUeNrsnW2MVOUZhu/nPTO7AssaERQXUhNbXIjfiogKRKlhZxdRSwMtrbakKRUFY1LbHxoT+aGxajX+8KspttZaiW7UCMvsLqZGq9isMUGtDV2wFlGxG8QvvnfnnKc/WAnKQneXZXdmznUlJGQyczLnft9rn+edM3Ne0yDhDQ0nx+7TPEkmmVmtS6eaNEbuIyWNcMkEqcQkl7RTZttd2mrSBndvtxDWR2avWj7//iC9j6M0+efNi+IdO2bJfa6kme5+CsMO/ZqkZu9JelFmz0ZVVWussTEuCRm8oeHUQpJca9KP3H0sQwkDLMZ/XXoyE8LvLJ/fUJQyeC53Zux+i8zmuXtg2OAoS5HIvTGKojssn/9HUcjgV1xxYtzZ+Vu5/5i+H4ZkvWH2l6ii4le2cmXHkMjg7pY0NCzxJLndpWMZFhhiKb6wEG4N+fyDZuaDJoPX14+J3Z9w91kMAxRZ+7QmMrvampu3HnUZvKFhRhzHK1yqIXoo0iqxJYqiBZbP/60vr+vTQrdQVzc/TpIXEAGKGZdq4iR5oVBXN/+oyBDX1y+V2Qp3ryBuKHoh3CtktiKur186oG1SXFe3JJEeIGIoRYK0NGptffCIZSjU1c3vrghcO4BSXVQncl+QaW19ut8yeC43LZb+SmsEZSBEZyR911paXu2zDD5nzui4q+tNdx9HlFAmQnwUZbNn26pVn/R6Ae3uFnd2Po4IUGaL6nHd89p6LUOSy13rUj3xQdkJIdUnudy1vWqTuq8ut7v7cUQHZdoufRaZ1X7zKvVBlSF2vxsRoMzbpeNi97sPWxl89uxJcaHwT759CmVfHSSPMpnTbPXq9T1WhjiOb0YESMnaweI4vrnHyuCzZ58Sx/EGd4+IClJSHQpRJlNrq1e/97XKUIjjRYgAKasOmUIcL/pam+TLlgWTriYeSGF1uNqXLQv7ZSi0tV3i7uOJBlJXHdzHF9raLtkvgyXJ94gFUlsduuf/vjbJbCaRQGqrQ/f8N29oGFuI44+JBNJMJopOCrF0MVFA2omli4O5TyQKSP26wX1icPdaooDUrxvca4O7n0oUgAx+ajCz0UQBqW+TzEaH7v0RANJeGkYGmSEDgNnI4O7DSAIoDD6MeyEBdIMMAMgAgAwAyACADADIAIAMAMgAgAwAyACADAADSqYszuLkk2UXXiirYUfewca3bJG/9pq0eXPJn4t11dV5SZ9ALqewdKksk2FmDpUQhYKSBx6Qt7TQJg0Z48YpXH89Igz1H6RMRmHJEmn8eGQYskGYMkVWwUakRTEW2axsyhRkGLIBOOkkZmExjcfYscgwdOmzrwrjgQwAyACADADIAIAMAINKaq5WJWvXKnnoIWnHDka9t1RVKdx4o0KJXz9Ahm/KsHy5tG0bE7wv7N2r5NFHUyNDetqknTuZ3P3hs89YMwCwgAZAhnJfHfHNVkAGSZJNn85ow+H/XqblRKPrrpPPnCnno1XJXerokLe1yV9/nTzSJoMkWW2t+J7rAcyereT555U8/DBZsICGcOWVsnPPJQhkAEmy888nBGQASdIJJ5ABMgAgA0CZyfDll4wgIIMk+TvvMIKADJLk69YpeeUVRhEGhJK/6Jbcead8wwaF6dOlmhpuHyNJFRWybJYc0iaDkkTe2Ki4sZHR3F/vg8I11ygsWEAWqVlAwyH/QCRPPil3JwtkAHV1SUlCDsgAgAwAyACADAADRFn8uMdmzNj378DrDLt2ydvblTz9tPT55707Ti4nu+CCwd1noFCQb9qkpKlJam8vwnANGUqmtC1erHDVVT2P42mnyS67TPGNN0off3z449xyi8KMGUMz3yZMkM2cqeSee+QvvVRcAafo49nSbpMmTTqkCPsnWnX1vv3GDveciy4aMhH2v4coUrjhBmnYMPoVZOjHBDr77N4978wzpXDoU7VzzimO8xkxQjZhArMSGfoxeUaN6t3zKiqkqqpDP6GXxxkUjj+eWYkMAMgAgAxFQ4ruNA3IcFh83TpCAGSQJF+7VsnatQSRcrg1dTfJ7bfLGxpkU6cO7BXoUaNkI0YQMDKUUnlw+erV8tWrB/a42azCbbcpTJ5MxrRJKaerS75mDTkgA0iSOjvJABkAkAEAGaAHjjmGDJABVFWlMGcOOZQAfLS6P4mMbP58halTpRNPHLhfeI0YIYsi8kWGEsFM4Y47FM46iyxok1LuwqWXIgIggyTZ6acTAiCDJOnYY8kAkAEAGQCQobjxrVsJARnAP/9c2riRIJAh5SJ0diq57z5p717CGCK46NbXSZsk0saN8j17BuaAXV3S++8raW6WPvyQgJGhdEjuukv+8ssEQZtEVXC22kUG0L47UrNPGjIAIAMAMsDBaQWpsrI03mtl5WFvww8Hw6dJfcDMFBYtUvLYY9Lu3cX7RocNU1i4UJaiLaiQYSiKw+WXK1x+OUHQJgEgAwAyACADADIAIAMAMgAAMuxj2zbOH5BBkpJ8Xp7SPRR8714lA71bUYnCFWhJ2rRJ8dKlCrNmSaNGpee8P/1USWur9MEHzAFkOIDNm5UsX04OtEkAgAwAyACADAApl2HMGEa7P1RXp+ZUU/NpUrR4seKHHpJ27mSC95aqKoVFi5Ch3LAzzlDm4YeZ4ECbBIAMAMgAgAwAyACQXhncGUHGAxkkydncg/FAhu7w29oGbgcdOLKx2LNH3taGDENGR4eSe++VF/N9T9Mgwu7dSu69V+roKOnzsK66utJvvEePlk2eLKup4c7Tg0mSyLdskb/xhvTJJyV/OuUhA0Dq2yQAZABABgBkAEAGAGQAQAYAZABABgBkAEAGAGQAKFoZzGwXMUDaMbNdQe7biQJSj/v2IAkZAKTtwc22kgOkvjCYbQ0mtRMFpH7NILUjA8BXMrj7eqIA1s++PkTDh79qEr+DhjRXBY+GD3812HPPbXPpbSKB1FYF6W177rlt+65Am71IJJDe0rBv/gdJypg9QyKQVr6a//bVA4Vc7l13/zbRQLqKgv0709Lynf2VobtveoJoIIWL5z9/9f/9MmQymd+bWSfxQIqqQmfIZJYfJIM1NX0k6TEighTxx+55/3UZJCnKZn9jUoGMIAXtUSHKZu868LGvyWCrVv1H0iNEBSngke753rMMkhRVV99qUgdZQRlXhY6ouvrWbz5+kAzW2PiFQriJyKBsCeEma2z8ogdJeqaQyz3l7vNJDsqsKjyVaW39YY+OHOpFkdkik94lPigjEd6NQvjFIQvGIV/Y3PxlFEXzTNpJjFAGIuyMomieNTd/2WcZJMny+Tc9hLkmdREnlLAIXR7CXMvn3zzsUuL/HSjb3LxGUbSQ3zxAiYrgiqKF2ebmNb14bu8o5HIL5P4nl7JEDKVSEWT200xLy4pePr/3dNXXz7IkecalKqKGIhdhh4fw/d5UhF63Sd9smaJsdpqkjcQNRczGKJud1hcR+iyDJFlT01uZysrzzGwFmUPRVQSzFZnKyvOsqemtflST/lOor/+BkuQ+l2oYBhjitmiLQvhlprn5qf4e44juwp1pbn4qqqycKOl+Pn6FIVskS/dHlZUTj0SEI64MB+Jz5nwr7uz8taSfu3QMwwRHWYI9kpZHFRX32KpVmwfomAOLX3HFiUln588S959ImsiwwQDzr2D2eKio+IOtXNkxwIIdPbyhYXIhSebKfaaZTXb3iLGEPi6IY3d/Q2YvZkJ41vL5N45itRkcvL6+uuB+YXCf6FKtzGpdGmPuVTIbKWk4Q59adsl9u5vtMGmrzDaY1J64r8+Y/f1w3ycaSP43ACfMbTWqSiK8AAAAAElFTkSuQmCC";
		static final String default_login_avatar = "iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAYAAAA+s9J6AAAAAXNSR0IArs4c6QAAGwlJREFUeAHtXXuMXsV9/Xa9D+96wVhrMHb8wDbr2mz24QetiB0QUWOTQiNZAiMiBVEoikTV/OEklGA1CVWNaGj9B4pQUyAhQS3CISJCboutKghkB7Ws7fUui6m35mH8ANtrY4x3vU/3nI97l293v8f97p37PiON5t55/ubMnDtz51mRkQodgUuXLlXs379/bkVFxTVjY2OLIdA82DXCpJ4Ne/u5Hu81cKulCXua1dDDsBuEOUQNez73Q/fBvg/maT7Dns/HKysr34P9+ytXrjwBu0uwkwoRgYoQ005d0r29vbUXLly4DkRrgW4FAZpBhiUwF8EkoQJVSHcQ6X4A812YPSBnF3T3jBkz3m5qaiKRpQJAQCT0CWRU6sq9e/c2o1KvxfNaJLMK5jKYVT4laTLaERDzECLcB3MPPhh7Vq9e3YPnMZOJKK7PERAJDdUEEKyis7NzDSrsekS5Du83wJxpKPooRHMOJHwDguyGuRNd2b0w1ZU1UDIioQcQOzo6+L+2AVHcAr0BxLvSQ3SxCop8n4LAO6FfQb53rlmzhv+dUi4QEAnLBK27u3vO0NDQ7Qh2JzS7mpVlRpE47yAku6m7obfX1NS82NLS8nHiMuljhkRCB+AePHiwsb+//3YQ7k5UuJtEvMKgkZDA5zWYL9TX17+4YsUKjshKFUFAJCwADipSxb59+26G8/3QG/Ee+OhlAdFiYw0icoT1JeinVq1a9Sre9Q+Zp/REwkmgsLs5ODh4L6zvg146yVmv7hE4jKBP19bW/lLd1YkgioQWHhhkWYgv9YNo8Ui+6RNh0ptBBC4C56eB8+MYzDliMN7YRpV6EmKlShOmFR5Cpfg2SpGrT6SCQWAYZHwO86iPYbqjN5gko5lKakl44MCBLw8PDz+MYtkEPS2axZMKqUaRy+3V1dWPtrW1vZWKHE/KZOpIiJbv+tHR0S34Cn8TrV/q8j+p/CPzivJAcVx6edq0aVvRMr4ZGcECECQ1lRAjnVzNshWYckWLVLQR2IVu6haMqHZEW0wz0iWehF1dXbMwub4VX9rv4Eub+ol1M9XG/1hQXpxv/Dkm/7e0trae9T/F8FJILAlRgBVYQH03CvNxPKdmOVl4VcmflFF+p1B+P8AC8l/jOZHzjIkkIaYbWlAlnoRe50/VUKwhIMBlcQ9gWqM7hLR9TTJRJOzp6WkYGBh4BIh9FzoOW4Z8LdwERj6CPD1RV1f34+bm5s+Skr/EkBBdT041bEPX5UtJKRzlIz8C6JYeg8tmdFG35/cRL9vYk5DbiQD5s9C3xgt6SesVAZBxBxaJ3xP3ReKxJiEIyH++56Hney1QhY8tAkch+V34V+Q/YyxVLIfsOfIJAv4QiL8KLQLGsuoZE5rl/yrqA5cexrJRiZ3QmHS/EmD/Gpq72aWEwDgC6J6+An03Jvm56z82KlYkBAFvBPmeh54XG4QlaKAIgITHoe8CEV8PNGEPicWiOwrSceJ9C5ad/V4E9FDaKQjK+sF6wvrCehOHLEdeSB4tgbM6/w1gas1nHGpUtGTchTNUvxX10dNIkxC73Bdgl/sulOvyaJWtpIkRAu9gN/967Ob/MKoyR5aE+P/jSdU8Uk+jn1GtPfGR6yh2ZWzAf+LbURQ5kv+E2PP3FfTnOe8jAkax1sRPpvmsT6xXURQ9ciTED/Vt2HT7XwBtVhQBk0zxRID1ifWK9StqOYgUCQHQPQCLR+TVRQ0oyZMIBOpYv1jPopSbyJAQwPCks18CHO1+iFINSZ4sVaxnrG9RyVroAzMAhHOA/whANkcFFMmRGgS2YSfG9zG5H+pm4dBbHREwNRU+ihndjPpHub4XpnChdketLoFawDBrgNImEUPtmobWHUXGOQjDf0ApIRA6AuiS/gW6ps+GIUgoJAQBbwMBOQoaenc4DNCVZiQR4O3EG0HEHUFLFzgJOWHK+RpkVNMQQZe20iuFwAAOH/5THD78h1IeTboHSkIuRUMLuBtaE/EmS1FxGUMAreFZEPGr7e3tPcYiLRFRYCS0FmPzC6OlaCUKRc6hI3AUEqwN6taoQEZHuR3J2g0hAoZevySAAwRYT3ey3jrw69mL7yRE17MS+wF5GJO2I3kuLkUQIALLuY8V9df33qLvJMR/IA9k+nqA4CkpIWAKgfWov7w+z1flK8uRgRt51AByoPv/fC1GRe4jAqPYi/g1P8+s8Y2EICBPReuE1qFMPtYQRe0/Ahgx5eFR7X6d4uZLd5T9aGgeSygC+l9HlILPCLAeW/XZl0bLFxJiRQwPYtW5oD5XDkUfHAKsz6zXfqRonNnW0fQ8GVtL0vwoMcUZJgIjSPxm00fuGyWhdTxhJwTVfGCYVUVp+4kAJ/JXgoinTSVitDuKeZVfQTAR0FTpKJ4oIsD6/axJwYyREP3lTRBM15OZLB3FFVUEbrXquxH5jHRHeUPuxYsX38HPqy7oNFIsiiTqCGDK4hhO916xfPny815lNdIS8opqEdBrUSh8nBBgff/ss89+YkJmzy0hRkNbIMg+aI2GmigRxREnBDhaugqDNN1ehPbUEuJrQBI/CS0CeikFhY0rAqz3T1o8cJ0HTyTEz+ndSHmd69QVUAjEH4F1Fg9c58R1d7Srq2vW8PDw/+IrcKXr1BVQCCQAAQzSnKqurv6j1tbWs26y47olHBoa2ioCuoFcYZKGAHlAPrjNl6uWEDsk1iDh/4Z2TWK3AiucEIgiAmgNx6D/BDstOsqVzxWJsEfwURGwXKjlP8kIkA/ghavWsOyWEEcWXo8jC/8nyYAqb0LALQI4qe2PcWTim+WEL7slBAG3lJOA/AqBNCHghh9ltYQHDhz48sjISBea3rLCpakQlNd0I4D/wktVVVWtbW1tbzlFoqyWEATcIgI6hVb+0ogA+YGpu7IOh3LcouFfsAlN7UEAq0Ob0li7lOdyEBjFv+EK/Bv2OgnkeLkZRn64tT+xBEQ3InPVVVdlGhoaMjhdywl28uMQAXy8M+fPn8+cPn06g5bCYahYe5tm8eU+J7lw1BJikfZCRPZ/0NVOIo2bHxIQW1Iy9fX1cRM9VvKSiIcOHYqVzB6EHUbYa50cpe/ok49KyksUE0lAgswWUAQkEv6qyy67LNPYGMjJ8v5mxFns1RZvSvouSUJc5DIHXQhHzWrJ1CLqgV1QqWAQSBPW5A35UwrZkiTERS73IpLppSKKs7v+AYMrPQxYBJdY+ClNt/hTVJKiJORwK0InuhUsio4chYB3BO6zeFQwpqIkxELtmxFyacHQchACQqAUAksxvfe1Yp6KkhAB7y8WWG5CQAiURgAt4V8W81WQhNYFiRuLBZabEBACjhDYWOzC0YKT9ThB7Q4wuNZREinyBExSlFtnWeU8q1RhBMgj8gk+/jmfr4IkxIw/D/OVykHg+PHjmY8++igtqz5ycl78kSOe8+fPz8yePbu4xxS7WnzKS8K83VHObeDrdlOKMcubdREwLywZLkvjB0qqMALkU6E5w7wkxHkZt6MJzetWOJlku7Abqq5o4TLGl76wo1xYdyrJq3xQFCLanfk8y04ICAFPCOTl1RQSYrE2O/ZrPSWlwEJACORDYK3FrwluU0iIvusGdUUnYJR94Qggzpac6iAbIeAQAfKK/JrsPd/o6Dcme9L75whce+21mb6+vkza/n/wL5PB5Sepy7dP9Z7XyP9rbtwTSAimVmCp2vpcD3r+AgFud0rrlicS8fDhw5n+/v4vANGTGwTY00SDWDE+4TyhO9rZ2clDfXWsvRtoEx6mpqYms2TJkgy75VLuESC/yLPcGCaQEN0stYK56Oh5AgK1tbWp7QlMAMLjy2SeTSAh4tYNSx4BTnpwDU4ZKeEJPBsnIZrJSugbjCShSISAECiIAHlGvtkexh9wx1ozLGfaDjKFgBDwDYGZFt+yCYyTEEc8pHaCniN/UkIgSARy+TZOQjSPqSXhmTNngsRfaQkBriUd59s4CYHLqrRiw/MwP/zwQ01Gp7UChJPvcb5lJ+t7e3trz507tywcWaKR6smTJ7OrYTgZn7ITwTKcepg7d27q8h1mzUNLuIy8a2pqGsyS8MKFC9dBoAmrZ8IUMKy07ePaw0o/zHR57OO8efPCFCFtaVdZvNuf7Y5i8rAlbQgovxMRwE1CEy305jsCNu9sErb6nqISEAJCYAICIGGWd1kSYj0g5wilhIAQCBABm3dZEuIncUmAaSspISAEgIDNuyo8cPvSIpgCBghwl4B9NwUxQZehbFyCGF3lIJJUvBFAXSPvKqpwRPdcPKT+fFFOTSxcuDC7S4BEtBUu9MieJFZqQp/EW7BgQeaKK64IZKifHwfObx45ciSjFT92acXLJO/IP263vyZeopuXlnvlli1blpkxY8aU/XKcQ1u8eHFm1qxZRRNeunRp9u69IFpBCsLWeubMmVm57Za7qIByjCQC5F8lvqiLIyldgELxktBS5Ln66qsLSkTy8gLMMBQ/EqU+EGHIpTSdIUD+cWAm9TO0dXV1JRGbPr3wFY1OwpdMwIOHsNP3ILqCgn/cQ5ia+4u9lHjuf6KXePwIG2XZ/MhvkuIk/9gS6gKBJJWq8hI3BGaThGoJPRabpgs8Apju4GoJTZS/zuQ0gWI648CvRCOnKNQSeix/Ln4+duyYLozxiGNKgzdy+1LpocGUolNOtrkfEVtTspP1nHf0qjhlcvnll0+Zt/Qar8JHDoF6LltL/WoZU8VCElKbUrx0c9GiRaaiUzwRRID848CM9892BDOXBJH4rymVeARq+E+oljDx5awMRhUB8k8tYVRLR3KlBYEaklCX7qWluJXPKCJQTRLqcJEoFg1k4i4JqcQjMMzR0UFkU4MzBsqapOF+QlNTFNydIZVsBMg/zhPqDHgD5czjAnl2p5QQKBOBIXZHRcIyUZvsnS1fsf2Gk/3rXQjkIDDEKQp2R6U8INDQ0KCVLR7wS3NQ8o8toS4h91gLdLyERwDTHbyfJOxLNwbKvRAIFYE+7qwXCUMtA++JuzmW0XuqisEEAuSfWkITSIYcx8DAQMgSKHkPCJwmCU97iEBBQ0bg4sWLmbNnz4YshZL3gEBfFUZn+tAkeohDQctFwATeIyMjmU8//TRz9OhRbSYutwAi5J/842T98QjJlGhRuDXp8OHDGRJISghYCBzH6Hrle4IjGAROnTolAgYDdWxSIf84Ovp+bCSOuaAaxYx5AfogPvlXuXLlyhNaNeMDuopSCJRAgLwj/7hsDWS89EEJ/3IWAkLAMALkHfnHKQque3zXcPyKLg8CJrY45YnWiFWUZTOSwQhGYvOOo6Mc4u6BcUsE5UyUSNzuxKMMeU5plBQJOGfOnCiJlApZLN5lsiTECE2XBg38L3cSkESUEgJEgLzLmtZLN00pISAEgkMAJMzyLvtPiGMU3kbSmkEODn+lJARGLN5lsiRsamoaxE/iIeEiBIRAMAiQb+QdU8uS0Ep2XzDJKxUhIASAwDjfxkkIZu4RNEJACASDQC7fxkmI0VGRMBj8lYoQyOTybZyEq1ev5lzhOeFTPgKDg+k5K2toSIfzlV9DpoQ4Z/Et6zBOQjSPY9BvTPEui5IInD9/PvPJJ5+U9Bd3D319fZn+fp0L5rUcyTPyzY4nO1lvv8DcDa2VMzmAOH3kPkGemF1dncyrPdgCioBOa0NJf+TZuJpAQkwe7hodHf37cVc9lIWAyQtCy0pYnmOFAFrBnbkCj3dHadne3t4BD6dyPehZCAgBcwiQX9i+tDc3xgkkhAceNjOBpbme9SwEhIBnBHZaPBuPaAIJLdtXxl31IASEgGkEpvBrCgmxvYJMHR+5MS1BnOPDP3OcxfdVdmFTGl7yivya7HPCwAwd16xZc3rv3r2cuP/qZM9pfgeAmQULFmROnDiRweBVmqGYkncSUFu0psCSz2I3+TXZYQoJLQ8vwBQJJ6E1e/bsDLWUEHCJwPZ84fL2r7DT+kV1SfPBJTsh4A4B8om8yhc6LwlbWlo+Rt/1tXwBZCcEhED5CJBP5FW+kHlJSI9gLrukUkJACBhAoBifCpKwvr6eXdL0rEw2ALSiEAL5ECCPyKd8brQrSMIVK1bw3sKXCgWUvRAQAo4ReMniU94ABUlo+X4qb6iEWWrKIbgCTellOEV5VJSEq1atehXFczi4IgonJd6WJBUMAinE+rDFo4IAFyUh+rJcS/pMwdAJcTh58mSGewKl/EWAey7PnDnjbyLRi/1pi0cFJaso6GI5dHd3z8HO8ffxOr2U37i7NzY2ZhoaGrKnZMc9L1GSn11QtoApJODF2traawpNTdhlVJKE9IhlbD/DPMdf2YFkCgEhUBoBtIA/wzEWf13KZ9HuqB0YBPwpnqN1gYItnEwhEE0EhsGbx52I5oiEWHR6BKx+zkmE8iMEhEB2sctz5I0TLByRkBFhpfxjMLR9wAmq8pN2BEYtvjjCwTEJsSW/FzHmXQXuKCV5EgLpQWC7xRdHOXZMQsaGk8QeLTXc6ihVeRICCUWA/CBPysleWSRsa2t7Cz+bL5eTgPwKgTQhQH6QJ+XkuSwSMmJcdLm1nATkVwikCQE3/CibhOjrvglQd6UJWOVVCDhEYJfFD4feP/dWNgkZDCM/W9D31WFQZUEtz0lGgHwgL9zk0RUJsSC1A33fn7tJUGGEQBIRIB/ICzd5c0VCJoTzMtga6rRuN6grTKIQIA/IB7eZck3C1tbWs2D/D9wmrHBCICkIkAfkg9v8OFrAXShyJF6Bxd2vw31dIT+yFwIJR2A3FmnfiNaQ2/5cKdctIVOzEn4AjyOuUlcgIRBvBFjvH/BCQGbfEwkZARapdsN4gs9SQiBlCDxh1X9P2fZMQqaOjbA/wdfgmCdJFFgIxAgB1ve6urofmxDZCAmXL1/OsyE2mxBIcQiBmCCwubm52cjhRJ4GZiaD1dHRsQN2t06217sQSBICaAV3YDDmz03lyUhLmCPMPXg+mvOuRyGQNASO4iDfe0xmyigJ8ZPKa5/ugtZoqclSUlxRQYD1+q5iB/m6EdQoCSkAiLgbxo/cCKMwQiDiCPytVb+Nimn0n9CWjJP4+/bt+w+Yt9h2MoVAnBHAf+ArWBv6ZzBdT8oXyr/xlpAJUVDou6GPF0pY9kIgLgiwHlv12TgBiYEvJGTE+GqcguD8P9ThUAREKq4IjLIesz77lQHfSEiBIfjryICRCU2/AFC8QqAYAqy/rMfF/Hh18+WfMFcoa5H3K7Bbn2uvZyEQAwR2YT7wFhDRl26onX9fW0ImwgzMmDHjW3h8x05UphCIAQLvsN76TUDi4DsJmQjnVXAxBltCTeQTEKmoI3CU9dX0fGChTAdCQiaOm2k+xBkcG/Blcb35sVAmZC8ETCHA+sl6yvpqKs5S8QRGQgqCH9y3kcHb8DhQSjC5C4EQEBhg/WQ9DTLtQEnIjOFIuD/ga7MJj1raFmRJK61SCIywXrJ+lvJo2j1wEjIDGHHagQzfbzozik8IuEWA9ZH10m14L+FCISEFRoafRcb/xovwCisETCDAesj6aCIuN3H4Pk9YSijsQfwn+NGG4FJAyd0vBLZhUfb3/IrcSbyhtYS2cPgCfR/P2+x3mUIgQAS2WfUvwCSnJhV6S2iLhKMTH8Tqmn+w32UKAT8RsLqgvAY+dBUZEhIJEPEeEPEpPFaFjowESCoCHAXlIMyzUclgpEhIUEDE20BE3ghcFxWQJEdiEBgAATeBgKGMghZCMXIkpKD79+//ytjY2A6QcVYhwWUvBMpBAOTjSpjbwpgHLCVnJElIoTs7O5tHRka4+2J+qUzIXQiUQOBoVVXVLe3t7T0l/IXiHFkSEo3u7u4Fg4ODvJB0eSjoKNEkIMDdOxswDXEkqpmJNAkJ2sGDBxsvXLjwPB6/HlUQJVdkEdjF7UhB7YZwi0LkSciM4d+wEgdH/RDmI3id5jazCpcaBHgkBXfEPwrT1w25JhCNBQntjIKIN4KIz0PPs+1kCoFcBEA6HsrEM2Fez7WP8nPoK2bKAYfAAuB2aA7YSAmBCQiwXrB+xImAzECsWkIbcbSEvJz0Ibz/HbQm9m1g0mtyW9yPMP/3GEgY+e7n5GKKJQntTGDx9zo8c9BG0xg2KOkzeWTKXX6cjB0UlLHqjk4GxQJ+Jez/fbKb3lOBAMt9ZZwJyFKKdUuYW83QPeVu/W3oqn4p117PyUMAXU5eSLsZ3U8ub4y9SgwJWRI9PT0NAwMDj+Dxu9D6VyQoyVL893uCN0NbF9MmIneJIqFdIvhXbMHzk9D8Z5RKBgK7kY0H0PXsTkZ2vshFIknI7FkjqLyU5nE8X/lFlvUUJwRQfrwD4kFMO/wKz7Eb+XSCdWJJaGe+q6tr1tDQ0FYU4HdAxlgPRNl5SoOJ8hpDef1LTU3Nw62trYk+qzbxJLQrLFbbrMH2qEfxrjWoNijRNXdh29EWtH4d0RXRnGSpIaENGfYqXj86OroFX9pvsstq28sMFwF2NaFenjZt2lbs+XszXGmCTT21lZCDNyj4h1HwdwByLQoPtt7lpsbF1r/Bfr+tbW1tb+U6pOU5tSS0CxgtYxO6qQ+BjN+GXbVtL9N3BIZBvufQ7XwMLV+v76lFOIHUk9AuG7SMC1EpeOLbfbCbbtvLNI7AReD8DHD+KaYbjhiPPYYRioSTCg27+edgN/+9sCYZl05y1qt7BA4j6DO4cuwXuPHoY/fRJC+kSFigTPGlrsCI6s1wvh96I95rC3iVdQEE0OINwul3MJ9Cl/P3MBM5z1cg+46tRUIHUPGIDSyHuwP/jptQkW4CITXfWAA34MP5vdfwr7e9rq7uN1E/WqJANgK1FgnLhJvdVUz+345gd0KvFSGzV6KPAYs90C9Mnz79t83NzR/hWcohAiKhQ6DyecNgzmx8+TfA7RvQ60HI1CyPQ765nIwn4f0n8r0Tgyyn8SzlAgGR0AVo+YKgIlbgrFSuylkP93V4vwHmzHx+Y2p3DsR7A7LvRldzF87w7MC7/vEMFKZIaADEfFGAhJXY49iMCssu61r4WQVzGcw4bLHifQ2HIOs+mHvwYdmDvXs9eGa3U8owAiKhYUCLRdfb21uLM1SvQ6VugW5FpW4GMZfAXAQz8NFXpDuIdD+A+S7MHsjejZUrXTir8+2mpiaObEoFgIBIGADIpZIAASqwcmcuyHANyLkY/ufBrhHmbOisCTeadbAnWWvwnjXxzFU+w9BDcCNxhuBGsx/vZ2DyX62PJuxpHkfr/B7c3se0wQnYqUsJUMJU/w9jhjMoRCzzngAAAABJRU5ErkJggg==";
		static final String default_index_bottom_menu_logo_blur = "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";
		static final String default_index_bottom_menu_logo_focus = "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";
		// static final String default_people_avatar_default =
		// "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";
		static final String default_process_default = "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";
		static final String default_setup_about_logo = "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";

		private String name;
		private String value;

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public String getValue() {
			return value;
		}

		public void setValue(String value) {
			this.value = value;
		}

		@Override
		public int compareTo(Image o) {
			return this.name.compareTo(o.getName());
		}

	}

	public void save() throws Exception {
		File file = new File(Config.base(), Config.PATH_CONFIG_APPSTYLE);
		FileUtils.write(file, XGsonBuilder.toJson(this), DefaultCharset.charset);
	}

	public static class NativeApp extends GsonPropertyObject implements Comparable<NativeApp> {

		private Integer id;
		private String key;
		private String name;
		private Boolean enable;
		private IOS iOS = new IOS();

		public Integer getId() {
			return id;
		}

		public void setId(Integer id) {
			this.id = id;
		}

		public String getKey() {
			return key;
		}

		public void setKey(String key) {
			this.key = key;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public Boolean getEnable() {
			return enable;
		}

		public void setEnable(Boolean enable) {
			this.enable = enable;
		}

		public IOS getiOS() {
			return iOS;
		}

		public void setiOS(IOS iOS) {
			this.iOS = iOS;
		}

		public static NativeApp nativeTask() {
			NativeApp o = new NativeApp();
			o.setId(1);
			o.setKey("task");
			o.setName("待办");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("task");
			o.getiOS().setVcname("todoTask");
			return o;
		}

		public static NativeApp nativeTaskCompleted() {
			NativeApp o = new NativeApp();
			o.setId(2);
			o.setKey("taskcompleted");
			o.setName("已办");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("task");
			o.getiOS().setVcname("todoTask");
			return o;
		}

		public static NativeApp nativeRead() {
			NativeApp o = new NativeApp();
			o.setId(3);
			o.setKey("read");
			o.setName("待阅");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("task");
			o.getiOS().setVcname("todoTask");
			return o;
		}

		public static NativeApp nativeReadCompleted() {
			NativeApp o = new NativeApp();
			o.setId(4);
			o.setKey("readcompleted");
			o.setName("已阅");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("task");
			o.getiOS().setVcname("todoTask");
			return o;
		}

		public static NativeApp nativeMeeting() {
			NativeApp o = new NativeApp();
			o.setId(5);
			o.setKey("meeting");
			o.setName("会议管理");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("meeting");
			o.getiOS().setVcname("");
			return o;
		}

		public static NativeApp nativeFile() {
			NativeApp o = new NativeApp();
			o.setId(6);
			o.setKey("yunpan");
			o.setName("云盘");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("cloudStorage");
			o.getiOS().setVcname("");
			return o;
		}

		public static NativeApp nativeBbs() {
			NativeApp o = new NativeApp();
			o.setId(7);
			o.setKey("bbs");
			o.setName("论坛");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("bbs");
			o.getiOS().setVcname("");
			return o;
		}

		public static NativeApp nativeCms() {
			NativeApp o = new NativeApp();
			o.setId(8);
			o.setKey("cms");
			o.setName("信息中心");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("information");
			o.getiOS().setVcname("");
			return o;
		}

		public static NativeApp nativeAttendance() {
			NativeApp o = new NativeApp();
			o.setId(9);
			o.setKey("attendance");
			o.setName("考勤打卡");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("checkin");
			o.getiOS().setVcname("");
			return o;
		}

		public static NativeApp nativeO2ai() {
			NativeApp o = new NativeApp();
			o.setId(10);
			o.setKey("o2ai");
			o.setName("语音助手");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("checkin");
			o.getiOS().setVcname("");
			return o;
		}

		public static NativeApp nativeCalendar() {
			NativeApp o = new NativeApp();
			o.setId(11);
			o.setKey("calendar");
			o.setName("日程安排");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("checkin");
			o.getiOS().setVcname("");
			return o;
		}

//		"id": 12,
//	    "key": "",
//	    "name": "脑图",
//	    "enable": true,
//	    "iOS": {
//	      "category": "native",
//	      "subcategory": "coding",
//	      "storyboard": "flutter",
//	      "vcname": ""
//	    }

		public static NativeApp nativeMindMap() {
			NativeApp o = new NativeApp();
			o.setId(12);
			o.setKey("mindMap");
			o.setName("脑图");
			o.setEnable(true);
			o.getiOS().setCategory("native");
			o.getiOS().setSubcategory("coding");
			o.getiOS().setStoryboard("flutter");
			o.getiOS().setVcname("");
			return o;
		}

		@Override
		public int compareTo(NativeApp o) {
			return this.getId().compareTo(o.getId());
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + ((id == null) ? 0 : id.hashCode());
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			NativeApp other = (NativeApp) obj;
			if (id == null) {
				if (other.id != null)
					return false;
			} else if (!id.equals(other.id))
				return false;
			return true;
		}

	}

	public static class IOS {

		private String category;
		private String subcategory;
		private String storyboard;
		private String vcname;

		public String getCategory() {
			return category;
		}

		public void setCategory(String category) {
			this.category = category;
		}

		public String getSubcategory() {
			return subcategory;
		}

		public void setSubcategory(String subcategory) {
			this.subcategory = subcategory;
		}

		public String getStoryboard() {
			return storyboard;
		}

		public void setStoryboard(String storyboard) {
			this.storyboard = storyboard;
		}

		public String getVcname() {
			return vcname;
		}

		public void setVcname(String vcname) {
			this.vcname = vcname;
		}
	}

	public void setImages(TreeSet<Image> images) {
		this.images = images;
	}

	public void setNativeAppList(TreeSet<NativeApp> nativeAppList) {
		this.nativeAppList = nativeAppList;
	}

}